]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
extensionSystem: Allow changing extensions in ERROR state
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 19 Dec 2023 23:02:35 +0000 (00:02 +0100)
committerMarge Bot <marge-bot@gnome.org>
Wed, 3 Jan 2024 20:05:05 +0000 (20:05 +0000)
While an extension's actual state can no longer change once it is
in ERROR state, its requested state can. In fact, disabling an
erroneous extension is highly recommended, so that it doesn't cause
problems again on the next login.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

js/ui/extensionSystem.js

index 10e1d92debedb44e9910ddbed5d3559c011763d1..0ff2828094b9e7ddd242fc0fea2968112fb9035f 100644 (file)
@@ -370,7 +370,6 @@ export class ExtensionManager extends Signals.EventEmitter {
         extension.errors.push(message);
 
         logError(error, `Extension ${uuid}`);
-        this._updateCanChange(extension);
         this.emit('extension-state-changed', extension);
     }
 
@@ -572,10 +571,6 @@ export class ExtensionManager extends Signals.EventEmitter {
     }
 
     _updateCanChange(extension) {
-        let hasError =
-            extension.state === ExtensionState.ERROR ||
-            extension.state === ExtensionState.OUT_OF_DATE;
-
         let isMode = this._getModeExtensions().includes(extension.uuid);
         let modeOnly = global.settings.get_boolean(DISABLE_USER_EXTENSIONS_KEY);
 
@@ -584,7 +579,6 @@ export class ExtensionManager extends Signals.EventEmitter {
             : ENABLED_EXTENSIONS_KEY;
 
         extension.canChange =
-            !hasError &&
             global.settings.is_writable(changeKey) &&
             (isMode || !modeOnly);
     }